<?php

/**
 * evaluar_acuerdo actions.
 *
 * @package    Aceptor
 * @subpackage evaluar_acuerdo
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class evaluar_acuerdoActions extends sfActions
{
    
    
 public function preExecute()
 {
     $service = new serviceAceptor();
     date_default_timezone_set($service->getTimezone());

    if(sfConfig::get('app_domain')=='server')
     {
          $simpleSAMLAuth = new SimpleSAML_Auth_Simple('default-sp');
          if (!$simpleSAMLAuth->isAuthenticated())
          {
              $this->redirect('logoutsaml/scriptLogOut');
          }

     }
  }


 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {

    $this->getUser()->getAttributeHolder()->remove('ses_acuerdo_id');
    $acuerdo_id=$request->getParameter('acuerdo_id');

    $criteria = new Criteria();
    $criteria->add(TbAcuerdoPeer::ID,$acuerdo_id);
    $acuerdo_aux = TbAcuerdoPeer::doSelectOne($criteria);

    if(is_object($acuerdo_aux))
    {
        $paqueteId = $this->getUser()->getAttribute('ses_paquete_id',null);
        if($paqueteId!=null)
        {
            $test_service = new servicePlanes($paqueteId);
            $respuesta    = $test_service->mostrarDocument($acuerdo_id,'acuerdo');
            if($respuesta["success"])
            {

                $this->acuerdo = $acuerdo_aux;
                $criteria->clear();
                $criteria->add(TbDetalleAcuerdoContactoPeer::ACUERDO_ID,$acuerdo_id);
                $lst_acuerdo_contacto = TbDetalleAcuerdoContactoPeer::doSelect($criteria);
                $this->lst_acuerdo_contacto = $lst_acuerdo_contacto;
                $evaluo_acuerdo="";
                foreach ($lst_acuerdo_contacto as $row) {
                    if($row->getUsuarioId()==$this->getUser()->getAttribute('ses_user_id')){
                        if($row->getEstado()=='1'){
                            $evaluo_acuerdo="ko";
                        }
                    }
                }
                $this->evaluo_acuerdo=$evaluo_acuerdo;
                // 1 ..... si es paquete free
             
                if($paqueteId==1){
                    $this->diferencia = $respuesta["diferencia"];
                    $this->plan = "free";
                }else{                   
                    $this->diferencia = null;
                    $this->plan = "pago";
                }

                 if($acuerdo_aux->getTipoAcuerdo()=='2'){
                      if($acuerdo_aux->getPkFile()!='null'){
                         $this->imageIcon =  $this->returnIcon($acuerdo_aux->getPkFile());
                      }
                 }
                

            }
            else
            {
                 return 'stop';
            }

        }
        else
        {
                 $this->redirect('logoutsaml/scriptLogOut');
        }
           
    }else{
        return sfView::ERROR;
    }
   
    
  }



  public function executeRespuesta_contacto_update_acuerdo($acuerdo_id)
  {

      $criteria = new Criteria();
      $criteria->add(TbDetalleAcuerdoContactoPeer::ACUERDO_ID,$acuerdo_id);
      $lst_datos = TbDetalleAcuerdoContactoPeer::doSelect($criteria);
      $lst_cantidad = TbDetalleAcuerdoContactoPeer::doCount($criteria);

      $cont=0;
      $rpta = "";
      foreach ($lst_datos as $row) {
        if($row->getEstado()!='1'){
            $cont++;
        }
      }
      if($cont == $lst_cantidad){
          $rpta = "fin";
      }
      return $rpta;

  }




  /*================Detalle de Aceptacion====================*/

public function executeMostrar_aceptacion(sfWebRequest $request)
{

    /*obtengo el acuedo y lo retorno*/
    $acuerdo_id=$request->getParameter('acuerdo_id');
    $criteria = new Criteria();
    $criteria->add(TbAcuerdoPeer::ID,$acuerdo_id);
    $acuerdo_aux = TbAcuerdoPeer::doSelectOne($criteria);
    $this->acuerdo   = $acuerdo_aux;
    /*********************************/

    $criteria->clear();
    $criteria->add(TbDetalleAcuerdoContactoPeer::ACUERDO_ID,$acuerdo_id);
    $lst_acuerdo_contacto = TbDetalleAcuerdoContactoPeer::doSelect($criteria);
    $this->lst_acuerdo_contacto = $lst_acuerdo_contacto;

    $evaluo_acuerdo="";
    foreach ($lst_acuerdo_contacto as $row) {
        if($row->getUsuarioId()==$this->getUser()->getAttribute('ses_user_id')){
            if($row->getEstado()=='1'){
                $evaluo_acuerdo="ko";
            }
        }
    }
    $this->evaluo_acuerdo=$evaluo_acuerdo;
}


public function executeAprobo_acuerdo_ajax(sfWebRequest $request)
{

    setlocale(LC_ALL,"es_PE@euro","es_PE","esp");
    $service = new serviceAceptor();
    date_default_timezone_set($service->getTimezone());

    $simpleSAMLAuth = new SimpleSAML_Auth_Simple('default-sp');
    $attributes     = $simpleSAMLAuth->getAttributes();


    $hdd_acuerdo_id=$request->getParameter('hdd_acuerdo_id');
    $hdd_ip_cliente=$request->getParameter('hdd_ip_cliente');

    $criteria = new Criteria();
    $criteria->add(TbDetalleAcuerdoContactoPeer::USUARIO_ID,$this->getUser()->getAttribute('ses_user_id'));
    $criteria->add(TbDetalleAcuerdoContactoPeer::ACUERDO_ID,$hdd_acuerdo_id);
    $upd_acuerdo = TbDetalleAcuerdoContactoPeer::doSelectOne($criteria);

    $upd_acuerdo->setEstado('2');
    $upd_acuerdo->setFechaRevision(date('Y-m-j'));
    $upd_acuerdo->setIp($hdd_ip_cliente);
    $upd_acuerdo->setHoraRevision(date('g:i:s'));
    $upd_acuerdo->setFechaHoraRevision(date('Y-m-d H:i:s'));
    $upd_acuerdo->save();

    $crite = new Criteria();
    $crite->add(TbAcuerdoPeer::ID,$hdd_acuerdo_id);
    $obj_acuerdo = TbAcuerdoPeer::doSelectOne($crite);
  
   
    $rpta = "";
    $rpta = $this->executeRespuesta_contacto_update_acuerdo($hdd_acuerdo_id);

    if($obj_acuerdo->getRespuesta()=='2'){

        if($rpta == "fin"){
          /*$obj_creator = TbUsuarioPeer::retrieveByPK($obj_acuerdo->getCreadorId());
            // INICIO DE CORREO
            $message = $this->getMailer()->compose();
            $message->setSubject('ACEPTOR - Respuesta de Acuerdo');
            $message->setTo($obj_creator->getCorreo());
            $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
            $html = $this->getPartial('evaluar_acuerdo/mensaje', array(
                'rpta'=>'2',
                'tipo'=>'ok',
                'texto'=>$nombre_user));
            $message->setBody($html, 'text/html');
            $this->getMailer()->send($message);
            // FIN DE CORREO*/
        }

    }elseif($obj_acuerdo->getRespuesta()=='1'){
        $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acuerdo->getCreadorId());

        /* INICIO DE CORREO */
        if(is_object($obj_creator)){
                $nombre_user = $obj_creator->getNombre().' '.$obj_creator->getApePaterno();

                $message = $this->getMailer()->compose();
                $message->setSubject('ACEPTOR - Respuesta de Acuerdo');
                $message->setTo($obj_creator->getCorreo());
                $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
                $html = $this->getPartial('evaluar_acuerdo/mensaje', array(
                    'owner'=>$nombre_user,
                    'doc_object'=>$obj_acuerdo,
                    'tipo'=>'ok',                 
                    'nombre_user'=>$attributes['nombre'][0].' '.$attributes['apellido'][0]));
                $message->setBody($html, 'text/html');
                $this->getMailer()->send($message);
                /* FIN DE CORREO */
        }

    }

    if($rpta == "fin"){
       $crite = new Criteria();
       $crite->add(TbAcuerdoPeer::ID,$hdd_acuerdo_id);
       $upd_acuerdo = TbAcuerdoPeer::doSelectOne($crite);
       $upd_acuerdo->setEstado('2');
       $upd_acuerdo->save();
    }

  }

public function executeDesaprobo_acuerdo_ajax(sfWebRequest $request)
{

    $service = new serviceAceptor();
    date_default_timezone_set($service->getTimezone());

    $simpleSAMLAuth = new SimpleSAML_Auth_Simple('default-sp');
    $attributes     = $simpleSAMLAuth->getAttributes();


    $hdd_acuerdo_id    =$request->getParameter('hdd_acuerdo_id');
    $hdd_ip_cliente    =$request->getParameter('hdd_ip_cliente');
    
    $criteria = new Criteria();
    $criteria->add(TbDetalleAcuerdoContactoPeer::USUARIO_ID,$this->getUser()->getAttribute('ses_user_id'));
    $criteria->add(TbDetalleAcuerdoContactoPeer::ACUERDO_ID,$hdd_acuerdo_id);
    $upd_acuerdo = TbDetalleAcuerdoContactoPeer::doSelectOne($criteria);

    $upd_acuerdo->setEstado('3');
    $upd_acuerdo->setFechaRevision(date('Y-m-j'));
    $upd_acuerdo->setIp($hdd_ip_cliente);
    $upd_acuerdo->setHoraRevision(date('g:i:s'));
    $upd_acuerdo->setFechaHoraRevision(date('Y-m-d H:i:s'));
    $upd_acuerdo->save();

    $crite = new Criteria();
    $crite->add(TbAcuerdoPeer::ID,$hdd_acuerdo_id);
    $obj_acuerdo = TbAcuerdoPeer::doSelectOne($crite);    

    $rpta = "";
    $rpta = $this->executeRespuesta_contacto_update_acuerdo($hdd_acuerdo_id);

    if($obj_acuerdo->getRespuesta()=='2'){
        if($rpta == "fin"){
            $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acuerdo->getCreadorId());

            if(is_object($obj_creator)){
                /* //INICIO DE CORREO
                $message = $this->getMailer()->compose();
                $message->setSubject('ACEPTOR - Respuesta de Acuerdo');
                $message->setTo($obj_creator->getCorreo());
                $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
                $html = $this->getPartial('evaluar_acuerdo/mensaje', array(
                    'owner'=>$obj_creator->getNombre().' '.$obj_creator->getApePaterno(),
                    'tipo'=>'ko',
                    'nombre_user'=>$attributes['nombre'][0].' '.$attributes['apellido'][0]));
                $message->setBody($html, 'text/html');
                $this->getMailer()->send($message);
                // FIN DE CORREO*/
            }
           
        }

    }elseif($obj_acuerdo->getRespuesta()=='1'){
        $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acuerdo->getCreadorId());
        $obj_user = TbUsuarioPeer::retrieveByPK($this->getUser()->getAttribute('ses_user_id'));
        $nombre_user = $obj_user->getNombre().' '.$obj_user->getApePaterno();
        /* INICIO DE CORREO */
      $message = $this->getMailer()->compose();
        $message->setSubject('ACEPTOR - Respuesta de Acuerdo');
        $message->setTo($obj_creator->getCorreo());
        $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
        $html = $this->getPartial('evaluar_acuerdo/mensaje', array(
            'owner'=>$obj_creator->getNombre().' '.$obj_creator->getApePaterno(),
            'doc_object'=>$obj_acuerdo,
            'tipo'=>'ko',
            'nombre_user'=>$attributes['nombre'][0].' '.$attributes['apellido'][0]));
        $message->setBody($html, 'text/html');
        $this->getMailer()->send($message);
        /* FIN DE CORREO */
    }

    if($rpta == "fin"){
        $crite = new Criteria();
        $crite->add(TbAcuerdoPeer::ID,$hdd_acuerdo_id);
        $upd_acuerdo = TbAcuerdoPeer::doSelectOne($crite);
        $upd_acuerdo->setEstado('2');
        $upd_acuerdo->save();
    }


  }





public function executeMostrar_archivo(sfWebRequest $request)
{

    $this->setLayout(false);
    $pk_acuerdo_file = $request->getParameter('pk_acuerdo');
    $crite = new Criteria();
    $crite->add(TbAcuerdoPeer::ID,$pk_acuerdo_file);
    $obj_acuerdo = TbAcuerdoPeer::doSelectOne($crite);    

    $username = "grafilab"; 
    $key  = "5428d56bf36120fc2b5414393df70046";
    $auth = new CF_Authentication($username,$key);
    $auth->authenticate();
    $conn = new CF_Connection($auth);
    $my_docs  = $conn->get_container('AceptorFiles'); 
    $doc      = $my_docs->get_object($obj_acuerdo->getPkFile());    

    $file_name = $doc->name;
    $content = $this->executeContent_type_file($file_name);
    
    if($content!=null){
        header("Content-Type: " . $content);
    }else{
        header("Content-Type: " . $doc->content_type);
    }
  
    $output = fopen("php://output", "w");
    $doc->stream($output); 
    fclose($output);

}



 public function returnIcon($filename)
{

        $extension =  substr(strrchr($filename, '.'), 1);

        if($extension=="docx" || $extension=="dotx" || $extension=="doc" )
        {
            return "implementacion/ico_word.png";
        }
        elseif($extension=="pptx" || $extension=="ppsx" || $extension=="potx" || $extension=="ppt" )
        {
            return "implementacion/ico_ppt.png";
        }
        elseif($extension=="xlsx" || $extension=="xltx" || $extension=="xls" )
        {
            return "implementacion/ico_excel.png";
        }
        elseif( $extension=="bmp" || $extension=="jpg" || $extension=="jpeg" || $extension=="png" || $extension=="gif" )
        {
            return "implementacion/ico_image.png";
        }

        elseif( $extension=="zip" || $extension=="rar" )
        {
            return "implementacion/ico_zip.png";
        }

        elseif( $extension=="pdf" || $extension=="xps")
        {
            return "implementacion/ico_pdf.png";
        }
        else
        {
             return "implementacion/ico_file.png";
        }

}



public function executeContent_type_file($filename)
{

$extension =  substr(strrchr($filename, '.'), 1);

if($extension=="docx"){
    return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
}elseif($extension=="dotx"){
   return "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
}elseif($extension=="pptx"){
   return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
}elseif($extension=="ppsx"){
   return "application/vnd.openxmlformats-officedocument.presentationml.slideshow";
}elseif($extension=="potx"){
   return "application/vnd.openxmlformats-officedocument.presentationml.template";
}elseif($extension=="xlsx"){
   return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
}elseif($extension=="xltx"){
   return "application/vnd.openxmlformats-officedocument.spreadsheetml.template";
}elseif($extension=="xls"){
   return "application/excel";
}
else{
    return null;
}


}




}
